<?php

namespace Common\Annotations;

use Attribute;
use Common\Helpers\DebugHelper;
use Hyperf\Di\Annotation\AbstractAnnotation;
use Hyperf\Di\Annotation\Inject;
use Psr\EventDispatcher\EventDispatcherInterface;
use Psr\SimpleCache\CacheInterface;

#[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_METHOD)]
class DeviceTcpServiceAnnotation extends AbstractAnnotation
{

    public function process()
    {
        // 在这里处理注解逻辑
        // 例如：记录日志、修改配置等
        echo "Processing DeviceTcpServiceAnnotation\n";
    }

    // 实现 serialize 方法
    public static  function serialize(): array
    {
        return [];
    }

    // 实现 deserialize 方法
    public static function deserialize(array $data): void
    {
        // 反序列化数据
        // 通常不需要实现
    }

    // 实现 clear 方法
    public static function clear(): void
    {
        // 清除注解数据
        // 通常不需要实现
    }

    public function onConnect()
    {
        echo '设备-onConnect-DeviceTcpServiceAnnotation';
    }

    public function onReceive($server, int $fd, int $reactorId, string $data)
    {
        DebugHelper::consoleWrite('设备上报-onReceive',[
            'fd'=>$fd,
            'data'=>$data
        ]);
    }
}